package dao

import (
	"time"
)

// 这是 GcttGit 的全局公开dao对象，被service层调用!
var GcttGitDao = gcttGitDao{}

// Go语言中文网翻译组 github 文章翻译信息表
// 这是 gctt_git表 的实体类,这个实体类中的字段可以减少，但是不能在其基础上增加!
type GcttGit struct {
	Id            int32     `json:"id" form:"id" db:"id" v:"id"`
	Username      string    `json:"username" form:"username" db:"username" v:"username"`                         // github 用户名
	Pr            int32     `json:"pr" form:"pr" db:"pr" v:"pr"`                                                 // 完成翻译时的 PR 编号
	Title         string    `json:"title" form:"title" db:"title" v:"title"`                                     // github上文章名(也是文件名)
	Md5           string    `json:"md5" form:"md5" db:"md5" v:"md5"`                                             // 标题 md5
	TranslatingAt int32     `json:"translating_at" form:"translating_at" db:"translating_at" v:"translating_at"` // 开始翻译时间
	TranslatedAt  int32     `json:"translated_at" form:"translated_at" db:"translated_at" v:"translated_at"`     // 完成翻译时间
	Word          int32     `json:"word" form:"word" db:"word" v:"word"`                                         // 字数
	ArticleId     int32     `json:"article_id" form:"article_id" db:"article_id" v:"article_id"`                 // 本站 article id
	CreatedAt     time.Time `json:"created_at" form:"created_at" db:"created_at" v:"created_at"`
}

// 注意:这是 GcttGit 的私有dao对象，只能在dao层内使用!
type gcttGitDao struct {
	InsertTemplate func(arg GcttGit) (int64, error)         //插入一条记录
	UpdateTemplate func(arg GcttGit) (int64, error)         //更新一条记录
	DeleteTemplate func(id int64) (int64, error)            `arg:"id"` //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (GcttGit, error)          `arg:"id"` //根据传入的主键获取一条记录
	List           func(arg GcttGitList) ([]GcttGit, error) //模糊分页查询
}

/*
// 这是 gctt_git 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type GcttGitPostman struct {
id
username
pr
title
md5
translating_at
translated_at
word
article_id
created_at

}*/

// 这是 gctt_git 表的批量请求参数
type GcttGitReq struct {
	List []GcttGit `json:"list" form:"list"`
}

// 这是 gcttGitDao.List()方法的请求参数
type GcttGitList struct {
	Page
}
